package ar.com.sectorwine.dto;

import javax.validation.constraints.AssertTrue;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotEmpty;

public class UsuarioRegistroDTO {

	private static final String CAMPO_NULO_O_VACIO_MESSAGE = "{constraint.violation.notnull}";
	private static final String CAMPO_ENTRE_1_25_MESSAGE = "{constraint.violation.size.1_25}";
	private static final String CAMPO_ENTRE_8_25_MESSAGE = "{constraint.violation.size.8_25}";
	private static final String TERMINOS_Y_CONDICIONES_NO_ACEPTADOS = "{constraint.violation.assertTrue.tycAceptados}";
	private static final String EMAIL_NO_VALIDO = "{constraint.violation.email.format}";

	@NotEmpty(message = CAMPO_NULO_O_VACIO_MESSAGE)
	@NotNull(message = CAMPO_NULO_O_VACIO_MESSAGE)
	@Size(min = 1, max = 25, message = CAMPO_ENTRE_1_25_MESSAGE)
	private String nombre;

	@NotEmpty(message = CAMPO_NULO_O_VACIO_MESSAGE)
	@NotNull(message = CAMPO_NULO_O_VACIO_MESSAGE)
	@Size(min = 1, max = 25, message = CAMPO_ENTRE_1_25_MESSAGE)
	private String apellido;

	@NotEmpty(message = CAMPO_NULO_O_VACIO_MESSAGE)
	@NotNull(message = CAMPO_NULO_O_VACIO_MESSAGE)
	@Size(min = 1, max = 25, message = CAMPO_ENTRE_1_25_MESSAGE)
	private String nombreDeUsuario;

	@NotEmpty(message = CAMPO_NULO_O_VACIO_MESSAGE)
	@NotNull(message = CAMPO_NULO_O_VACIO_MESSAGE)
	@Size(min = 1, max = 25, message = CAMPO_ENTRE_1_25_MESSAGE)
	@Email(message = EMAIL_NO_VALIDO)
	private String email;

	@NotEmpty(message = CAMPO_NULO_O_VACIO_MESSAGE)
	@NotNull(message = CAMPO_NULO_O_VACIO_MESSAGE)
	@Size(min = 8, max = 25, message = CAMPO_ENTRE_8_25_MESSAGE)
	private String password;

	@NotEmpty(message = CAMPO_NULO_O_VACIO_MESSAGE)
	@NotNull(message = CAMPO_NULO_O_VACIO_MESSAGE)
	@Size(min = 8, max = 25, message = CAMPO_ENTRE_8_25_MESSAGE)
	private String confirmacionPassword;

	@AssertTrue(message = TERMINOS_Y_CONDICIONES_NO_ACEPTADOS)
	@NotNull(message = CAMPO_NULO_O_VACIO_MESSAGE)
	private Boolean tycAceptados;

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getApellido() {
		return apellido;
	}

	public void setApellido(String apellido) {
		this.apellido = apellido;
	}

	public String getNombreDeUsuario() {
		return nombreDeUsuario;
	}

	public void setNombreDeUsuario(String nombreDeUsuario) {
		this.nombreDeUsuario = nombreDeUsuario;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getConfirmacionPassword() {
		return confirmacionPassword;
	}

	public void setConfirmacionPassword(String confirmacionPassword) {
		this.confirmacionPassword = confirmacionPassword;
	}

	public Boolean getTycAceptados() {
		return tycAceptados;
	}

	public void setTycAceptados(Boolean tycAceptados) {
		this.tycAceptados = tycAceptados;
	}

}
